package com.bjwl.wybx.service.impl;

import com.bjwl.wybx.VO.PayDetailVO;
import com.bjwl.wybx.VO.RepaireVO;
import com.bjwl.wybx.entity.*;
import com.bjwl.wybx.mapper.RepaireMapper;
import com.bjwl.wybx.mapper.UserMapper;
import com.bjwl.wybx.service.RepaireService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

@Service
public class RepaireServiceImpl implements RepaireService {
    @Resource
    private RepaireMapper repaireMapper;
//    repaireMapper
//
    @Resource
    private UserMapper userMapper;
    @Override
    public int addRepaire(Repaire repaire) {
        return repaireMapper.addRepaire(repaire);
    }

    @Override
    public int updateRepaire(Repaire repaire) {
        return repaireMapper.updateRepaire(repaire);
    }

<<<<<<< HEAD


    @Override
    public List<RepaireVO> queryByUId(String u_id) {
=======
    @Override
    public int updateStatus(Repaire repaire) {
        return repaireMapper.updateRepaireStatus(repaire);
    }

    @Override
    public List<RepaireVO> queryByUId(String u_id) {

>>>>>>> 70f7e19d6da4b30f0412d394b1171a015e63af36
        List<Repaire> repaires = repaireMapper.queryByuId(u_id);
        repaires.forEach(System.out::print);
        List<RepaireVO> repaireVOS=new ArrayList<>();
        repaireVOS.forEach(System.out::print);
        for (Repaire repaire: repaires) {
            //通过type_id查询报修类型信息  名字  费用等
            RepaireType repaireType = repaireMapper.queryRequireTypeInfo(repaire.getType_id());
<<<<<<< HEAD
            RepaireVO repaireVO=new RepaireVO(repaire.getRepaire_id(),repaire.getU_id(),repaire.getRepaire_desc(),repaire.getAddress(),repaireType.getType_name(),repaire.getRepaire_status(),repaireType.getType_fee(),repaire.getIs_audit(),repaire.getIs_comment(),repaire.getComment(),repaire.getRepaireman());
            repaireVOS.add(repaireVO);

=======
            RepaireVO repaireVO=new RepaireVO(repaire.getRepaire_id(),repaire.getU_id(),repaire.getRepaire_desc(),repaireType.getType_name(),repaire.getRepaire_status(),repaireType.getType_fee());
            repaireVOS.add(repaireVO);
            System.out.println("repaireService:status:"+repaire.getRepaire_status());
>>>>>>> 70f7e19d6da4b30f0412d394b1171a015e63af36
        }
        return repaireVOS;
    }
    @Override
<<<<<<< HEAD
    public List<RepaireVO> queryByUIdAndRepaireStatus(String u_id, Integer repaire_status) {
        System.out.println(u_id+"-"+repaire_status);
=======
    public List<RepaireVO> queryByUIdAndRepaireStatus(String u_id, String repaire_status) {
>>>>>>> 70f7e19d6da4b30f0412d394b1171a015e63af36
        List<Repaire> repaires = repaireMapper.queryByuIdAndRepaireStatus(u_id,repaire_status);
        List<RepaireVO> repaireVOS=new ArrayList<>();
        repaireVOS.forEach(System.out::print);
        for (Repaire repaire: repaires) {
            //通过type_id查询报修类型信息  名字  费用等
            RepaireType repaireType = repaireMapper.queryRequireTypeInfo(repaire.getType_id());
<<<<<<< HEAD
            //RepaireVO repaireVO=new RepaireVO(repaire.getRepaire_id(),repaire.getU_id(),repaire.getRepaire_desc(),repaireType.getType_name(),repaire.getRepaire_status(),repaireType.getType_fee(),repaire.getIs_audit(),repaire.getIs_comment());
            //RepaireVO repaireVO = new RepaireVO(repaire.getRepaire_id(),repaire.getU_id(),repaire.getAddress(),repaire.getRepaire_desc(),repaire.getRepaire_status(),repaire.getType_id(),repaire.getIs_audit(),repaire.getIs_comment(),repaire.getComment());
            RepaireVO repaireVO=new RepaireVO(repaire.getRepaire_id(),repaire.getU_id(),repaire.getRepaire_desc(),repaire.getAddress(),repaireType.getType_name(),repaire.getRepaire_status(),repaireType.getType_fee(),repaire.getIs_audit(),repaire.getIs_comment(),repaire.getComment(),repaire.getRepaireman());
=======
            RepaireVO repaireVO=new RepaireVO(repaire.getRepaire_id(),repaire.getU_id(),repaire.getRepaire_desc(),repaireType.getType_name(),repaire.getRepaire_status(),repaireType.getType_fee());
>>>>>>> 70f7e19d6da4b30f0412d394b1171a015e63af36
            repaireVOS.add(repaireVO);
            System.out.println("repaireService:status:"+repaire.getRepaire_status());
        }
        return repaireVOS;
    }

    @Override
    public int updatePayDetailStatus(PayDetail payDetail) {
        //修改缴费状态
        return repaireMapper.updatePayDetailStatus(payDetail.getPayDetail_status(),payDetail.getPayDetail_id());

    }

<<<<<<< HEAD
    //这个类里边写了维修订单维修人员，我知道你写的谁的；list
    @Override
    public List<RepaireVO> queryList() {
        List<Repaire> repaires = repaireMapper.queryRepaireAllList();
        repaires.forEach(System.out::print);
        List<RepaireVO> repaireVOS=new ArrayList<>();
        repaireVOS.forEach(System.out::print);
        for (Repaire repaire: repaires) {
            //通过type_id查询报修类型信息  名字  费用等
            RepaireType repaireType = repaireMapper.queryRequireTypeInfo(repaire.getType_id());
//            RepaireVO repaireVO=new RepaireVO(repaire.getRepaire_id(),repaire.getU_id(),repaire.getRepaire_desc(),repaireType.getType_name(),repaire.getRepaire_status(),repaireType.getType_fee(),repaire.getIs_audit(),repaire.getIs_comment(),repaire.getComment());
            RepaireVO repaireVO=new RepaireVO(repaire.getRepaire_id(),repaire.getU_id(),repaire.getRepaire_desc(),repaire.getAddress(),repaireType.getType_name(),repaire.getRepaire_status(),repaireType.getType_fee(),repaire.getIs_audit(),repaire.getIs_comment(),repaire.getComment(),repaire.getRepaireman());
            repaireVOS.add(repaireVO);

        }
        return repaireVOS;
    }

    @Override
    public List<String> queryListRepaireMan() {
        List<String>  list = repaireMapper.queryListRepaireMan();

        return list;

    }

    @Override
    public int updateRepaireMan(String repaireman, Integer repaire_id) {
        return repaireMapper.updateRepaireMan(repaireman,repaire_id);
    }

    @Override
    public List<RepaireVO> queryRepaireVOByUId(String u_id) {
        System.out.println("u_id"+u_id);
        List<RepaireVO> repaireVOList=new ArrayList<>();
        List<Integer> repaireIdList=repaireMapper.queryRepaireIdByUId(u_id);
        System.out.println(repaireIdList.size());
        for(Integer id:repaireIdList){
            //通过维修单的id查询所属维修单数据
            Repaire repaire=repaireMapper.queryOne(id);
            System.out.println("repaire:+---->"+repaire.toString());
            System.out.println("typeid:"+repaire.getType_id());
            RepaireType repaireType = repaireMapper.queryRequireTypeInfo(repaire.getType_id());
//            System.out.println("repaireType+--->"+repaireType.toString());
            RepaireVO repaireVO=new RepaireVO(repaire.getRepaire_id(),repaire.getU_id(),repaire.getRepaire_desc(),repaire.getAddress(),repaireType.getType_name(),repaire.getRepaire_status(),repaireType.getType_fee(),repaire.getIs_audit(),repaire.getIs_comment(),repaire.getComment(),repaire.getRepaireman());
            repaireVOList.add(repaireVO);
        }
        return repaireVOList;

    }

    @Override
    public int updateRepaireManAndStatus(String u_id, Integer repaire_id) {
        try {
            //添加维修人员
            int a=repaireMapper.addRepaireMan(u_id,repaire_id);
            //将维修表的状态改为2
            //int b=repaireMapper.updateRepaireStatus(2,repaire_id);
            if(a>0){
                return 1;
            }
            return 0;
        } catch (Exception e) {
            e.printStackTrace();
            return 0;
        }
    }

    //维修人员更改维修单状态
    @Override
    public int updateRepaireStatusById(Integer repaire_status, Integer repaire_id) {
        return repaireMapper.updateRepaireStatusById(2,repaire_id);
    }

    @Override
    public int passAudit(Integer repaire_id) {
        return repaireMapper.updateIsAudit(repaire_id);
    }

    @Override
    public int finishRepaire(Integer repaire_id) {
        return repaireMapper.updateRepaireStatus(1,repaire_id);
    }

    @Override
    public int UpdateCommentById(String comment, Integer repaire_id) {
        return repaireMapper.updateCommentById(comment,repaire_id);
    }

=======
>>>>>>> 70f7e19d6da4b30f0412d394b1171a015e63af36
    @Override
    public RepaireVO queryOne(Integer repaire_id) {
        Repaire repaire = repaireMapper.queryOne(repaire_id);
        RepaireType repaireType = repaireMapper.queryRequireTypeInfo(repaire.getType_id());
<<<<<<< HEAD
        return new RepaireVO(repaire.getRepaire_id(),repaire.getU_id(),repaire.getRepaire_desc(),repaire.getAddress(),repaireType.getType_name(),repaire.getRepaire_status(),repaireType.getType_fee(),repaire.getIs_audit(),repaire.getIs_comment(),repaire.getComment(),repaire.getRepaireman());
=======
        return new RepaireVO(repaire.getRepaire_id(),repaire.getU_id(),repaire.getRepaire_desc(),repaireType.getType_name(),repaire.getRepaire_status(),repaireType.getType_fee());
>>>>>>> 70f7e19d6da4b30f0412d394b1171a015e63af36
    }


    @Override
    public int addPayDetail(PayDetail payDetail) {
        return repaireMapper.addPayDetail(payDetail);
    }

<<<<<<< HEAD

    @Override
    public int addUserRepaire(String u_id, Integer repaire_id) {

        return repaireMapper.addUserRepaire(u_id,repaire_id);
    }

=======
>>>>>>> 70f7e19d6da4b30f0412d394b1171a015e63af36
    @Override
    public List<PayDetailVO> queryAllPayDetail() {
        return null;
    }

    @Override
    public List<PayDetailVO> queryAllPayDetailByUId(String u_id) {
        return null;
    }

    @Override
    public PayDetailVO queryOnePayDetail(Integer payDetail_id) {
        return null;
    }

//    @Override
//    public List<PayDetailVO> queryAllPayDetail() {
//        List<PayDetail> payDetails = repaireMapper.queryAllPayDetail();
//        List<PayDetailVO> list =new ArrayList<>();
//        for (PayDetail p:payDetails
//             ) {
//
//            PayType payType = repaireMapper.queryPayTypeInfo(p.getPayType_id());
//            User user = userMapper.queryUNameByUId(p.getU_id());
//            PayDetailVO payDetailVO=new PayDetailVO(p.getPayDetail_id(),p.getU_id(),user.getU_name(),p.getPayDetail_fee(),payType.getPayType_name());
//            list.add(payDetailVO);
//        }
//
//        return list;
//    }

//    @Override
//    public List<PayDetailVO> queryAllPayDetailByUId(String u_id) {
//        List<PayDetail> payDetails = repaireMapper.queryPayDetailByUId(u_id);
//        List<PayDetailVO> list =new ArrayList<>();
//        for (PayDetail p:payDetails
//                ) {
//
//            PayType payType = repaireMapper.queryPayTypeInfo(p.getPayType_id());
//            User user = userMapper.queryUNameByUId(p.getU_id());
//            PayDetailVO payDetailVO=new PayDetailVO(p.getPayDetail_id(),p.getU_id(),user.getU_name(),p.getPayDetail_fee(),payType.getPayType_name());
//            list.add(payDetailVO);
//        }
//
//        return list;
//    }
//
//    @Override
//    public PayDetailVO queryOnePayDetail(Integer payDetail_id) {
//        PayDetail payDetail = repaireMapper.queryOnePayDetail(payDetail_id);
//        PayType payType = repaireMapper.queryPayTypeInfo(payDetail.getPayType_id());
//        User user = userMapper.queryUNameByUId(payDetail.getU_id());
//        PayDetailVO payDetailVO=new PayDetailVO(payDetail.getPayDetail_id(),payDetail.getU_id(),user.getU_name(),payDetail.getPayDetail_fee(),payType.getPayType_name());
//
//        return payDetailVO;
//    }


}
